<!DOCTYPE html>
<html>

<head>
<meta charset="UTF-8">

<title> 【NOIP2017】逛公园 - 题目 - Judge Duck Online </title>

<link rel="icon" type="image/png" href="/images/judgeduck-logo-small.png" />

<script src="/libs/js/jquery-3.2.1.min.js"></script>

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="/libs/css/bootstrap.min.css" />

<!-- Latest compiled and minified JavaScript -->
<script src="/libs/js/bootstrap.min.js"></script>

<link rel="stylesheet" type="text/css" href="/css/main.css" />
<link rel="stylesheet" href="/css/non-responsive.css" type="text/css" />

<script src="/js/md5.js"></script>
<script src="/js/judgeduck.js"></script>

<script type="text/x-mathjax-config">
	MathJax.Hub.Config({
		showProcessingMessages: false,
		tex2jax: {
			inlineMath: [["$", "$"], ["\\\\(", "\\\\)"]],
			processEscapes:true
		},
		menuSettings: {
			zoom: "Hover"
		}
	});
</script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@2.7.1/MathJax.js?config=TeX-AMS_HTML"></script>

<link rel="stylesheet" href="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.css">
<script src="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.js"></script>

</head>

<body onload="">

<!-- Fixed navbar -->
<nav class="navbar navbar-default" role="navigation" style="background-color: #eeeeee">
	<div class="container">
		<div class="navbar-header">
			<div class="navbar-brand">
				<a href="/">
					<img src="/images/judgeduck-logo.png" width="40px" height="40px" style="margin:-10px" />
				</a>
			</div>
			<font class="navbar-brand">
				Judge Duck Online
			</font>
		</div>
		<div class="navbar-collapse collapse">
			<ul class="nav navbar-nav">
				<li class="nav-item">
					<a href='/problem/noip17c/board/index.html' class=' pull-right btn btn-success'> 排行榜 </a>
<a style="display:inline-block;background-color:;color:#fff;padding:2px 5px;font-family:arial;font-size:12px;font-weight:bold;" href="http://www.iis7.com" target="_blank" class="3d99149c92374862952f822afdfdacf0">iis7站长之家</a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/problems/index.html"> 题目列表 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/submissions/index.html"> 提交记录 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/blogs/index.html"> 博客 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/faq/index.html"> FAQ </a>
				</li>
			</ul>
			<ul class="nav navbar-nav navbar-right">
				<li class="nav-item">
					<a class="nav-link" href="/user/login/index.html"> 登录 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/user/register/index.html"> 注册 </a>
				</li>
			</ul>
		</div><!--/.nav-collapse -->
	</div>
</nav>




<div id="main_div" class="container" style="padding-left: 25px; padding-right: 25px">
<h2> 【NOIP2017】逛公园 <a href='/problem/noip17c/board/index.html' class=' pull-right btn btn-success'> 排行榜 </a> </h2><hr />时间限制： 3 s <br />空间限制： 512 MB <br /><br /><h3>题目描述</h3>

<p>策策同学特别喜欢逛公园。 公园可以看成一张 $N$ 个点 $M$ 条边构成的有向图，且没有自环和重边。其中 $1$ 号点是公园的入口， $N$ 号点是公园的出口，每条边有一个非负权值，代表策策经过这条边所要花的时间。</p>

<p>策策每天都会去逛公园，他总是从 $1$ 号点进去，从 $N$ 号点出来。</p>

<p>策策喜欢新鲜的事物，他不希望有两天逛公园的路线完全一样，同时策策还是一个特别热爱学习的好孩子，他不希望每天在逛公园这件事上花费太多的时间。如果 $1$ 号点到 $N$ 号点的最短路长为 $d$，那么策策只会喜欢长度不超过 $d+K$ 的路线。</p>

<p>策策同学想知道总共有多少条满足条件的路线，你能帮帮他吗？</p>

<p>为避免输出过大，答案对 $P$ 取模。</p>

<p>如果有无穷多条合法的路线，请输出 $-1$ 。</p>

<h3>输入格式</h3>

<p>从标准输入读入数据。</p>

<p>第一行包含一个整数 $T$, 代表数据组数。</p>

<p>接下来 $T$ 组数据，对于每组数据：</p>

<p>第一行包含四个整数 $N,M,K,P$， 每两个整数之间用一个空格隔开。</p>

<p>接下来 $M$ 行，每行三个整数 $a_i,b_i,c_i$，代表编号为 $a_i,b_i$ 的点之间有一条权值为 $c_i$ 的有向边，每两个整数之间用一个空格隔开。</p>

<h3>输出格式</h3>

<p>输出到标准输出。</p>

<p>输出文件包含 $T$ 行，每行一个整数代表答案。</p>

<h3>样例输入</h3>

<div class="row">
<div class="col-xs-12 form-group">
<textarea class="form-control" rows="13" style="background-color:white" readonly>2
5 7 2 10
1 2 1
2 4 0
4 5 2
2 3 2
3 4 1
3 5 2
1 5 3
2 2 0 10
1 2 0
2 1 0
</textarea>
</div>

<p></div></p>

<h3>样例输出</h3>

<div class="row">
<div class="col-xs-12 form-group">
<textarea class="form-control" rows="3" style="background-color:white" readonly>3
-1
</textarea>
</div>

<p></div></p>

<h3>样例解释</h3>

<p>对于第一组数据，最短路为 $3$。</p>

<p>$1 - 5$ , $1 - 2 - 4 - 5$ , $1 - 2 - 3 - 5$ 为 $3$ 条合法路径。</p>

<h3>限制与约定</h3>

<p>对于不同的测试点，我们约定各种参数的规模<strong>不会超过</strong>如下</p>

<div class="table-responsive">
<table class="table table-bordered table-text-center table-vertical-middle"><thead><tr><th> 测试点编号</th><th> $T$ </th><th> $N$ </th><th> $M$ </th><th> $K$ </th><th> 是否有0边 </th></tr></thead><tbody><tr><td> 1</td><td> 5 </td><td> 5 </td><td> 10 </td><td>0 </td><td> 否</td></tr><tr><td> 2</td><td> 5 </td><td> 1000 </td><td> 2000 </td><td> 0</td><td> 否</td></tr><tr><td> 3</td><td> 5 </td><td> 1000 </td><td> 2000 </td><td> 50</td><td>否 </td></tr><tr><td> 4</td><td> 5 </td><td> 1000 </td><td> 2000 </td><td> 50</td><td> 否</td></tr><tr><td> 5</td><td> 5 </td><td> 1000 </td><td> 2000 </td><td> 50</td><td> 否</td></tr><tr><td> 6</td><td> 5 </td><td> 1000 </td><td> 2000 </td><td> 50</td><td> 是</td></tr><tr><td> 7</td><td> 5 </td><td> 100000 </td><td> 200000</td><td>0 </td><td> 否</td></tr><tr><td> 8</td><td> 3 </td><td> 100000 </td><td> 200000</td><td> 50</td><td> 否</td></tr><tr><td> 9</td><td> 3 </td><td> 100000 </td><td> 200000</td><td> 50</td><td> 是</td></tr><tr><td> 10</td><td> 3 </td><td> 100000 </td><td> 200000</td><td> 50</td><td> 是</td></tr></tbody></table></div>

<p>对于 100% 的数据，$1 \le P \le 10^9$，$1 \le a_i, b_i \le N$, $0 \le c_i \le 1000$。</p>

<h3>题目来源</h3>

<p>NOIP 2017 Day 1</p>
<hr />
				<div class="row">
					<input type="hidden" id="pid" value="noip17c" />
					<div class="col-xs-3 form-group">
						<label for="language"> 语言 </label>
						<select class="form-control" id="language">
							<option> C </option>
<option selected> C++ </option>
<option> C++11 </option>
						</select>
					</div>
					<div class="col-xs-12 form-group">
						<h4>关于标准输出的说明（最后更新：2018年10月23日）</h4>

<p>标准输出将被重定向到内存中，所以你的内存使用量也包括了你的标准输出的大小（向上取整到 4KB 的倍数）。</p>

<p>如果你的程序要进行大量输出，请考虑这一点。</p>

					</div>
					<div class="col-xs-12 form-group">
						<label for="code"> 你的代码 </label>
						<textarea id="code" class="form-control" rows="10">#include &lt;stdio.h&gt;

int main() {
	return 0;
}
</textarea>
						<br />
					</div>
					<div class="col-xs-12 form-group">
						<a href="javascript:judgeduck.submit()" id="btn_submit" class="btn btn-md btn-default"> 提交 </a>
					</div>
					<br />
				</div>

	<hr />
	
	<div class="row">
		<p style="text-align: center; color: #888">
			Judge Duck Online | 评测鸭在线 <br />
			Server Time: 2019-08-02 17:11:15 | Loaded in 0 ms | <a href="/status/index.html"> Server Status </a> <br />
			个人娱乐项目，仅供学习交流使用
		</p>
	</div>
</div>

</body>

</html>
